//定义常量appData进行获取json中的数据
const appData = require('./data.json');
//定义常量并通过appData进行获取json中的数据对象
const seller = appData.seller;
const goods = appData.goods;
const ratings = appData.ratings;
// 获取node中的path模块，用于对路径的解析
const path = require('path');

// 定义resolve函数，用于拼接地址
function resolve(dir){
  // __dirname为当前目录（vue.config.js的路径即项目vue-sell-cube根目录），绝对地址
  // path.join()方法会把path的地址进行拼接
  // dir为调用该方法传入的参数
  return path.join(__dirname, dir);
}

module.exports = {
  css: {
    loaderOptions: {
      stylus: {
        'resolve url': true,
        import: [
          './src/theme'
        ]
      }
    }
  },
  pluginOptions: {
    'cube-ui': {
      postCompile: true,
      theme: true
    }
  },
  // devServer字段，配置服务器信息（接口，端口号）
  // node中配置路由，绑定数据信息
  devServer:{
    // 创建before方法，形参为app
    // 创建app应用实例之前进行路由配置，app代表应用实例
    before(app){
      // 使用app对象调用get方法获取数据（模拟数据接口）
      // req为request（请求）的缩写，res为respones（响应）的缩写
      app.get('/api/seller',function(req, res) {
        // 通过res.json返回json数据
        res.json({
          // 如果成功返回errno字段，字段值为0，失败返回错误码
          errno: 0,
          // data用于绑定常量中的数据
          data: seller
        })
      })
      app.get('/api/goods', function (req, res){
        res.json({
          errno: 0,
          data: goods
        })
      })
      app.get('/api/ratings', function (req, res){
        res.json({
          errno: 0,
          data: ratings
        })
      })
    }
  },
  // 创建带有参数的函数，函数名为chainWerbpack
  // chainWerbpack函数中，自带的对象config
  chainWebpack(config){
    // 调用resolve.alias方法,用于简化路径
    config.resolve.alias
      // 调用resolve函数将src/components路径设置别名为components
      // 即components名字代表路径src/components
      .set('components',resolve('src/components'))
      // 调用resolve函数将src/common路径设置别名为common
      // 即common名字代表路径src/common
      .set('common',resolve('src/common'))
      // 调用resolve函数将src/api路径设置别名为api
      // 即api名字代表路径src/api
      .set('api', resolve('src/api'))
  }
}
